<%@ include file="/common/taglibs.jsp"%>
<!--分页查询共用的页面-->
<%@ include file="/common/common.jsp"%>
<%@ include file="/common/dateUtil.jsp"%>
<%@ page language="java" pageEncoding="UTF-8"%>

<head>
<!--测试代码-->
<script type="text/javascript" src="<%=ApplicationPath%>/test/js/alarm/testViewAlarmsProcessedPercent.js"></script>



<script>

/*
功能：
    1.基本功能和流程同报警明细查询功能

    2.通过复选框，改变统计单位，以车辆或者车组为统计单位，改变统计单位的同时，需要同时改变导出功能中的查询语句

    
*/


///////////////////////////////////////////////////////全局变量
var params = {};//定义参数保存变量
var debug = true;//定义调试标记，为true则允许输出调试信息，false则不允许



////////////////////////////////////////////////////////初始化控件

/*
1.初始化报警来源选择事件
2.初始化分页控件选择事件
3.初始化时间控件双击事件
4.初始化查询、重置、导出按钮的点击事件
*/

//接口，初始化控件
function initDivs(){
    initDataGrid();
    editFitColumsNum(1);//初始化列名

    setInputStartTime();//开始时间输入框事件
    setInputEndTime();//结束时间输入框事件
    setPageDiv();//设置分页控件

    setCheckedDiv();//设置统计单位

    setBtnQueryAlarmsProcessedPercent();//设置查询按钮
    setBtnResetAlarmsProcessedPercent();//设置重置按钮
    setBtnExportAlarmsProcessedPercent();//设置导出按钮
    
}

//初始化数据表格
function initDataGrid(){
    // outDebugInfo("开始设置数据表格");
    $("#alarmsProcessedPercentDataGrid").datagrid({
        height:"100%",
        // toolbar:"#alarmsProcessedPercentToolbar",//工具条
        fitColumns:false,//滚动条

        pagination:true,//分页工具栏
		pageList:[15,30,50,100],
        pageSize:15,
        
		rownumbers:true,//行号
		striped:true,//隔行变色
		singleSelect:true,//单选
		checkOnSelect: false,//选中则勾选
        selectOnCheck: false,//勾选则选中
    });

    //设置滚动条
    $(".datagrid-body").css("overflow-x","scroll");//这样，滚动条就显示出来了

}

//编辑列数据
function editFitColumsNum(countNum){
    var columns = [];
    if(countNum <1){
        //根据车牌号查询
        columns =
            [
                { title: '组织名称', field: 'depName', align: 'center', width: 140, minWidth: 80 },
                { title: '车牌号', field: 'plateNo', align: 'center', width: 120, minWidth: 80 },
                { title: '警情总量', field: 'totalNum', align: 'center', width: 120, minWidth: 80 },
                { title: '已处理', field: 'processedNum', align: 'center', width: 120, minWidth: 80 },
                { title: '未处理', field: 'unProcessedNum', align: 'center', width: 120, minWidth: 80 },
                { title: '已处理百分比(%)', field: 'percentNum', align: 'center', width: 120, minWidth: 80 },
            ];
    }else{
        //根据车组查询
        columns =
            [
                { title: '组织名称', field: 'depName', align: 'center', width: 140, minWidth: 80 },
                { title: '车辆总数', field: 'vehicleNums', align: 'center', width: 120, minWidth: 80 },
                { title: '警情总量', field: 'totalNum', align: 'center', width: 120, minWidth: 80 },
                { title: '已处理', field: 'processedNum', align: 'center', width: 120, minWidth: 80 },
                { title: '未处理', field: 'unProcessedNum', align: 'center', width: 120, minWidth: 80 },
                { title: '已处理百分比(%)', field: 'percentNum', align: 'center', width: 120, minWidth: 80 },
            ];

    }

    $("#alarmsProcessedPercentDataGrid").datagrid({
        columns:[columns],
    });

    $("#alarmsProcessedPercentDataGrid").datagrid('loadData',{rows:[],total:0});//绑定数据
}


//设置开始时间输入框双击事件
function setInputStartTime(){
    ///初始化时间
    var now = Utility.today();
	$("#alarmsProcessedPercentStartTime").val(now + " 00:00:00");
	
    $("#alarmsProcessedPercentStartTime").dblclick(function(event){
        var timeStr = $("#alarmsProcessedPercentStartTime").val();
        if(timeStr != ""){
            var strTemp = timeStr.split(" ");
            if(strTemp.length >= 2){
                timeStr = strTemp[0] + " 00:00:00";
                $("#alarmsProcessedPercentStartTime").val(timeStr);
            }
        }
        // outDebugInfo("当前时间 : "+timeStr);
    });
}


//设置结束时间输入框双击事件
function setInputEndTime(){
    var now = Utility.today();
    $("#alarmsProcessedPercentEndTime").val(now + " 23:59:59");
    $("#alarmsProcessedPercentEndTime").dblclick(function(event){
        var timeStr = $("#alarmsProcessedPercentEndTime").val();
        if(timeStr != ""){
            var strTemp = timeStr.split(" ");
            if(strTemp.length >= 2){
                timeStr = strTemp[0] + " 23:59:59";
                $("#alarmsProcessedPercentEndTime").val(timeStr);
            }
        }
        // outDebugInfo("当前时间 : "+timeStr);
    });
}



//设置分页控件
function setPageDiv(){
    // outDebugInfo("开始设置分页控件选择事件");
    $("#alarmsProcessedPercentDataGrid").datagrid("getPager").pagination({
        onSelectPage:pageGridOnSelectPage,
    }); 
}

//分页控件选择事件
function pageGridOnSelectPage(pageNumber,pageSize){
	outDebugInfo("选择页面事件触发");
    //获取新的页面参数
    getParams();


    // getPageParams();
    // outDebugInfo(params);
    if (checkParams()) {
        //请求查询数据
        getAjaxData();
    }
};

//设置统计单位
function setCheckedDiv(){
    
    // outDebugInfo(obj);
    $("#alarmsProcessedPercentChecked").click(function(event){
        var obj = document.getElementById("alarmsProcessedPercentChecked");
        // outDebugInfo(obj.checked);
        if(obj.checked){
            //车辆为统计单位
            $("#alarmsProcessedPercentPlateNo").removeAttr("disabled");
            editFitColumsNum(0);
            setPageDiv();
        }else{
            //车组为统计单位
            $("#alarmsProcessedPercentPlateNo").attr("disabled","disabled");
            editFitColumsNum(1);
            setPageDiv();
        }
    });
}



//设置查询按钮点击事件
function setBtnQueryAlarmsProcessedPercent(){
    $("#alarmsProcessedPercentBtnQuery").click(btnClickQueryAlarmsProcessedPercent);
}

//设置重置按钮点击事件
function setBtnResetAlarmsProcessedPercent(){
    $("#alarmsProcessedPercentBtnReset").click(btnClickResetAlarmsProcessedPercent);
}

//设置导出按钮点击事件
function setBtnExportAlarmsProcessedPercent(){
    $("#alarmsProcessedPercentBtnExport").click(btnClickExportCountAlarmsProcessedPercent);
}



////////////////////////////////////////////////////////初始化数据

//接口，初始化基本数据
function initDatas(){
    fitDepDatas();//填充车组信息
}

//填充车组数据
function fitDepDatas(){
    //创建下拉部门树
    Utility.createDepTree("alarmsProcessedPercentDepId");
}




////////////////////////////////////////////////////////////////////公用方法


//选择车组
function doSelectDep()
{
	InfoWindow.selectDep();
}

//设置车组信息回调方法，用于查找数组
function onDepSelected(depId,depName)
{
	$("#alarmsProcessedPercentDepId").combotree("setValue", depId);
}


//设置页面为显示指定页
function setToPage(num){
    // outDebugInfo("开始显示第" + num + "页");
    var opts = $("#alarmsProcessedPercentDataGrid").datagrid("options");
	var pager = $("#alarmsProcessedPercentDataGrid").datagrid("getPager");
	opts.pageNumber = num;
	opts.pageSize=params.pageSize;
	pager.pagination("refresh", {
		pageNumber: num,
		pageSize: opts.pageSize
    });
}

//获取页面参数
function getPageParams(){
    params.pageNumber = $("#alarmsProcessedPercentDataGrid").datagrid("getPager").data("pagination").options.pageNumber;
	params.pageSize = $("#alarmsProcessedPercentDataGrid").datagrid("getPager").data("pagination").options.pageSize;
}




//输出调试信息
function outDebugInfo(msg) {
    if (!debug) {
        return;
    }
    var outStr = "viewAlarmsProcessedPercent ----> ";
    if (typeof (msg) != "string") {
        console.log(outStr);
        console.log(msg);
    } else {
        outStr += msg;
        console.log(outStr);
    }
}

//输出错误信息
function outErrorInfo(msg) {
    console.error("viewAlarmsProcessedPercent ----> " + msg);
}


////////////////////////////////////////////////////////重置功能

//重置方法
function btnClickResetAlarmsProcessedPercent(event){
    // outDebugInfo("重置按钮点击事件开始");

    $("#alarmsProcessedPercentPlateNo").val("");

    var now = Utility.today();
    $("#alarmsProcessedPercentStartTime").val(now + " 00:00:00");
    $("#alarmsProcessedPercentEndTime").val(now + " 23:59:59");

    $("#alarmsProcessedPercentDepId").combotree("setValue", 0);

    //车组为统计单位
    $("#alarmsProcessedPercentPlateNo").attr("disabled","disabled");
    var obj = document.getElementById("alarmsProcessedPercentChecked");
    obj.checked = false;
}




////////////////////////////////////////////////////////查询功能

/*
1.首先获取参数：
    1.1获取基本参数
    1.2获取查询语句等参数，根据查询类型，以车组还是以车辆为统计单位
2.校验参数
3.请求数据
4.绑定响应数据

*/

function btnClickQueryAlarmsProcessedPercent(){
    outDebugInfo("开始查询功能");
    getParams();//获取参数
    if (checkParams()) {
        params.pageNumber = 1;

        //初始化控件为第一页
        setToPage(1);

        getAjaxData();//请求数据

    }
}


//获取参数
/*
车牌号，车组，报警来源，报警类型，开始时间，结束时间，
*/
function getParams(){
    //初始化参数为空
    params = {};
    getBasicParams();//获取基本的参数
    getPageParams();//获取页面参数
    getQueryId();//获取查询参数

    console.log("请求参数为：" , params);
}


//获取时间，组织部门，车牌号参数
function getBasicParams(){
    //获取基本查询信息
    var plateNo = $("#alarmsProcessedPercentPlateNo").val();
    if(plateNo != ""){
        params.plateNo = plateNo;
    }
    
	
	params.startTime = $("#alarmsProcessedPercentStartTime").val();//开始时间
	params.endTime = $("#alarmsProcessedPercentEndTime").val();//结束时间

	//获取选择树种选中的类型
    var treeSelected = $("#alarmsProcessedPercentDepId").combotree("tree").tree("getSelected");
	
    if(treeSelected!= null){
		var depIdTemp = treeSelected.id;
		// outDebugInfo("depIdTemp="+depIdTemp);
		try {
			depIdTemp = parseInt(depIdTemp);
		} catch (error) {
			outErrorInfo("获取查询条件中转换错误"+error);
		}
		if(depIdTemp != undefined){
			params.depId=depIdTemp;//获取depId
		}else{
			params.depId=0;
		}
		
    }
}


//获取查询参数
function getQueryId(){
    var obj = document.getElementById("alarmsProcessedPercentChecked");
    if(obj.checked){
        //以车辆为单位统计
        params.queryId = 'alarmReport.selectAlarmsProcessedPercentPagedatasByVeh';

        $("#alarmsProcessedPercentQueryId").val(params.queryId);
    }else{
        //以车组为单位统计,删除车牌号参数
        if(params.plateNo != undefined){
            delete params.plateNo;
        }
        //查询语句
        params.queryId = 'alarmReport.selectAlarmsProcessedPercentPagedatasByDep';
        $("#alarmsProcessedPercentQueryId").val(params.queryId);
    }

    var obj = document.getElementById("alarmsEarlyChecked");
        if(obj.checked){
            //车辆为统计单位
            params.outList = [
                'terminal_alarm_13',
                'terminal_alarm_14'
            ];
        }
}


/*
校验数据
    1.校验车牌号
    2.校验时间
*/
function checkParams(){
    var returnFlg = true;
    if(params != undefined){
        //校验车牌号，最多10位
        if(params.plateNo != undefined){
            if(params.plateNo.length > 10){
                alert("车牌号输入非法!")
                returnFlg = false;
            }
        }
        //校验时间
        var iHours = Utility.getDiffDay(Utility.stringToDate(params.startTime),Utility.stringToDate(params.endTime));
        if(iHours < 0){
            alert("结束时间应大于开始时间，请输入正确的结束时间！")
            returnFlg = false;
        }

    }else{
        returnFlg = false;
    }

    return returnFlg;
}




/*
请求ajax数据


请求ajax数据


请求ajax数据
*/
function getAjaxData(){
    var jsonData = JSON.stringify(params);
    var url = "<%=ApplicationPath%>/alarmReport/getAlarmsProcessedPercentPagedatas.action";
    
    outDebugInfo("开始请求数据......");
    Utility.showLoading();//添加遮罩
    Utility.getAjaxData(url,jsonData,function(data){
            outDebugInfo("接收数据->");
			outDebugInfo(data);
            Utility.hideLoading();//解除遮罩效果
            $("#alarmsProcessedPercentDataGrid").datagrid('loadData',data.data);//绑定数据
    });
}









////////////////////////////////////////////////////////导出功能

//导出按钮事件方法
function btnClickExportCountAlarmsProcessedPercent(event){
    outDebugInfo("导出事件");
    exportExcel();
}


function exportExcel(){
    try {
        outDebugInfo("开始导出报警次数统计文档");

        getParams();//获取参数
		outDebugInfo(params);

		$("#alarmsProcessedPercentQueryForm").attr("target", "_blank"); //弹屏下载
		$("#alarmsProcessedPercentQueryForm").submit();
		$("#alarmsProcessedPercentQueryForm").attr("target", "");
	} catch (error) {
		outErrorInfo("导出错误："+error);
	}
}




////////////////////////////////////////////////////////页面加载完成后调用方法
$(document).ready(function () {
    //初始化控件
    initDivs();

    //初始化数据
    initDatas();


    //测试方法
    // testClass.setTestInfoDiv('testInfo');//设置输出控件,不设置则不输出到页面
    // testClass.startTest();//开始测试
});

</script>

</head>
<body style="background-color:rgb(251,251,251);height:98%;width:99%;" class="base_ver_flexStartDiv_css">
<div id="alarmsProcessedPercentToolbar" style="width:100%;" class="sh_css_basFontSize">
    <form id="alarmsProcessedPercentQueryForm" action="<%=ApplicationPath%>/export.action">
        <input id="alarmsProcessedPercentQueryId" type="hidden" name="queryId" value="" />
        <input type="hidden" name="fileName" value="报警处理率统计报表" />
        <!--上层按钮栏-->
        <div style="width:80%;margin-left: 15px;margin-top:5px;">
            <a id="alarmsProcessedPercentBtnExport" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-excel'">导出</a>
            &nbsp;&nbsp;
            <a id="alarmsProcessedPercentBtnReset" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-clear'">重置</a>&nbsp;
        </div>
        <!--下层查询工具栏-->
        <hr>
        <div style="width:100%;height:30px;" class="base_hori_flexStartDiv_css">
            <!--左侧条件样式-->
            <div style="height:100%;" class="base_ver_Around_leftDiv_css">
                <div>
                    组织
                    <select id="alarmsProcessedPercentDepId" name="depId" style="width:140px;"></select>
                    <a id="btnSelectVehicle" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'"
                        onclick="doSelectDep();"></a>
                    起止时间
                    <input type="text" name="startTime" id="alarmsProcessedPercentStartTime" class="datetimepicker"
                        style="width:130px;" />
                    <span>-</span>
                    <input type="text" name="endTime" id="alarmsProcessedPercentEndTime" class="datetimepicker"
                        style="width:130px;" />
                    <input id="alarmsEarlyChecked" type="checkbox">报警总数不包含预警
                    车牌号码
                    <input id="alarmsProcessedPercentPlateNo" type="text" name="plateNo" style="width:100px;"
                            disabled="false">
                    <input id="alarmsProcessedPercentChecked" type="checkbox">以车辆为统计单位
                </div>
            </div>
            <!--右侧按钮-->
            <div style="margin-left:20px;" class="base_hori_flexCenterDiv_css">
                <!-- <a id="alarmsProcessedPercentBtnQuery" href="#" class="easyui-linkbutton" data-options="iconCls:'icon-search'">查询</a> -->
                <div id="alarmsProcessedPercentBtnQuery" class="sh_css_btn">
                    <div class="ui-icon icon-search" style="width:16px;height:16px;"></div>
                    <span>查询</span>
                </div>
                &nbsp;
            </div>
        </div>
    </form>
</div>
<table id="alarmsProcessedPercentDataGrid" style="width:100%;">

</table>
</body>
